import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        /*int L=in.nextInt();
        int R=in.nextInt();
        long ret=0;
        while(L<=R){
            int num=L;
            while(num>0){
                int n=num%10;
                if(n==2){
                    ret++;
                }
                num/=10;
            }
            L++;
        }
        System.out.println(ret);*/
        /*String str=in.nextLine();
        StringBuilder sb=new StringBuilder();
        int j=-1;
        for (int i = 0; i < str.length(); i++) {
            if(j==-1||str.charAt(i)!=sb.charAt(j)){
                sb.append(str.charAt(i));
                j++;
            }
            else{
                sb.deleteCharAt(j--);
            }
        }
        if(sb.length()==0){
            System.out.println(0);
        }
        else {
            System.out.println(sb.toString());
        }*/
        /*float kg= in.nextFloat();
        String str= in.next();
        char s=str.charAt(0);
        int ret=20;
        if(s=='y'){
            ret+=5;
        }
        if(kg<1.0f){
            System.out.println(ret);
        }
        else {
            int num=(int)kg;
            if(kg>(float) num){
                ret++;
            }
            ret+=num-1;
            System.out.println(ret);
        }*/
        /*int n=in.nextInt();
        int[] cost=new int[n];
        for (int i = 0; i < n; i++) {
            cost[i]=in.nextInt();
        }
        for (int i = 2; i < n; i++) {
            cost[i]+=Math.min(cost[i-1],cost[i-2]);
        }
        System.out.println(Math.min(cost[n-1],cost[n-2]));*/
        /*int n=in.nextInt();
        if(n<2){
            System.out.println(-1);
        }
        else {
            String str1=in.next();
            String str2=in.next();
            String[] strs=new String[n];
            int ret=Integer.MAX_VALUE;
            for(int i=0;i<n;i++){
                strs[i]=in.next();
            }
            int left=0,right=0;
            while(left<n&&right<n){
                if(strs[left].equals(str1)||strs[left].equals(str2)){
                    if(strs[left].equals(str1)&&strs[right].equals(str2)){
                        ret=Math.min(ret,right-left);
                        left=right;
                    } else if (strs[left].equals(str2)&&strs[right].equals(str1)) {
                        ret=Math.min(ret,right-left);
                        left=right;
                    } else if (strs[left].equals(str1)&&strs[right].equals(str1)) {
                        left=right;
                    } else if (strs[left].equals(str2)&&strs[right].equals(str1)) {
                        left=right;
                    }
                    right++;
                }
                else {
                    right++;
                    left++;
                }
            }
            if(ret==Integer.MAX_VALUE){
                System.out.println(-1);
            }
            else {
                System.out.println(ret);
            }
        }*/
        int n=in.nextInt();
        if(n<2){
            System.out.println(-1);
        } else {
            int ret=Integer.MAX_VALUE;
            String str1=in.next();
            String str2=in.next();
            String[] strs=new String[n];
            int pre1=-1,pre2=-1;
            for (int i = 0; i < n; i++) {
                strs[i]=in.next();
                if(strs[i].equals(str1)){
                    if(pre2!=-1){
                        ret=Math.min(ret,i-pre2);
                    }
                    pre1=i;
                } else if (strs[i].equals(str2)) {
                    if(pre1!=-1){
                        ret=Math.min(ret,i-pre1);
                    }
                    pre2=i;
                }
            }
            if(ret==Integer.MAX_VALUE){
                System.out.println(-1);
            }
            else {
                System.out.println(ret);
            }
        }
    }

    /**
     * 空间换时间
     * @param nums1
     * @param nums2
     * @return
     */
    public ArrayList<Integer> intersection (ArrayList<Integer> nums1, ArrayList<Integer> nums2) {
        ArrayList<Integer> set1=new ArrayList<>();
        ArrayList<Integer> set2=new ArrayList<>();
        ArrayList<Integer> list=new ArrayList<>();
        nums1.stream().forEach(element ->{
            if(!set1.contains(element)){
                set1.add(element);
            }
        });
        nums2.stream().forEach(element ->{
            if(!set2.contains(element)){
                set2.add(element);
            }
        });
        for(int i=0;i<set1.size();i++){
            if(set2.contains(set1.get(i))){
                list.add(set1.get(i));
            }
        }
        return list;
    }
}